{*******************************************************************************
* The contents of this file are used with permission, subject to the Mozilla   *
* Public License Version 1.1 (the "License"); you may not use this file except *
* in compliance with the License. You may obtain a copy of the License at      *
* http://www.mozilla.org/MPL/                                                  *
*                                                                              *
* Software distributed under the License is distributed on an "AS IS" basis,   *
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for *
* the specific language governing rights and limitations under the License.    *
*                                                                              *
* The Original Code is distributed as part of the "mediate" product and is     *
* Copyright (C) @home media limited. All Rights Reserved.                      *
*                                                                              *
* Email: support@athomemedia.co.uk                                             *
* Web:   http://www.athomemedia.co.uk                                          *
*******************************************************************************}

unit Mediate;

interface

const
  MEDIATE_EXECUTABLE_NAME = 'mediate.exe';

function CheckMediateRunning: Boolean;
procedure LaunchMediate;
procedure SendKeyCode(KeyCode: Integer);

implementation

uses Messaging, Utilities;

function CheckMediateRunning: Boolean;
begin
  // Return true if there's a mediate process somewhere
  Result := ProcessRunning(MEDIATE_EXECUTABLE_NAME);
end;

procedure LaunchMediate;
begin
  // Launch mediate application
  LaunchProcess(ApplicationPath + MEDIATE_EXECUTABLE_NAME, '', False);
end;

procedure SendKeyCode(KeyCode: Integer);
begin
  // Send keycode to mediate
  MessengerInstance.SendMediateRemoteCommand(KeyCode);
end;

end.
